jenkins通过GitBook生成HTML推送到GitHub Pages

步骤

  1. 从coding等私有仓库拉取md文件
  2. 生成HTML
  3. 发布到GitHub Pages

jenkins配置

  • 搭建Node.js环境
  • 创建,配置自由风格项目

New Item -> Enter an item name -- Freestyle project

配置内容:

Project name

配置项目名称

Source Code Management

jenkins-15-SCM

jenkins-15-SCM

Build Triggers

由于在本机使用的Jenkins,没有公网IP,所以使用如下触发器

表示每五分钟检查SCM是否有新的变更,如果有则构建,没有不构建

jenkins-16-Build-Triggers

jenkins-16-Build-Triggers

Build Environment

由于上面配置的Provide Node & npm bin/ folder to PATH构建的时候发现,环境变量有问题,所以下面构建时执行的命令有配置node的环境变量,其中NODEJS为配置全局变量(/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/v7.8.0/bin/)

Manage Jenkins -> Configure System

jenkins-19-nodejs-env

jenkins-19-nodejs-env

继续配置构建环境

jenkins-17-Build-Environment

jenkins-17-Build-Environment

Build

export PATH=${NODEJS}:$PATH
bash summary_create.sh
sed -i "s#Updated: 2017-[0-9][0-9]-[0-9][0-9]#Updated: $(date +%F)#g" README.md
sed -ri 's#(\S+* \[)[0-9]+-(.*$)#\1\2#g' SUMMARY.md
cd python && bash summary_create.sh && sed -ri 's#(\S+* \[)[0-9]+-(.*$)#\1\2#g' SUMMARY.md && cd ..
gitbook build .

附:docker-compose

➜  cat docker-compose.yml
jenkins-xxx:
  image: 'jenkins:latest'
  restart: always
  environment:
    - TZ=Asia/Shanghai
  volumes:
    - $PWD/jenkins:/var/jenkins_home
    - /etc/localtime:/etc/localtime:ro
  ports:
    - '49001:8080'

手动安装NodeJS

如果使用上面自动安装NodeJS的方式, 最后还是提示gitbook命令不存在

可以使用root身份进入容器, 创建软链接

docker以root身份进入容器

docker exec -it -u root 62044c564952 bash

或者直接全局安装npm, gitbook等命令

那样项目就不需要选择NodeJS了